const fs = require("fs");
const path = require("path");

// 忽略的文件
const blackList = ["node_modules", "package-lock.json"];

// 复制文件夹方法
module.exports = function copyFolderSync(source, target) {
  // 创建目标文件夹,没有就创建,有就直接覆盖
  if (!fs.existsSync(target)) {
    fs.mkdirSync(target);
  }

  // 读取源文件夹中的所有文件和子文件夹
  const files = fs.readdirSync(source).filter((v) => !blackList.includes(v));

  // 遍历处理文件和子文件夹
  files.forEach((file) => {
    const sourcePath = path.join(source, file);
    const targetPath = path.join(target, file);

    if (fs.statSync(sourcePath).isDirectory()) {
      // 如果是子文件夹，则递归复制子文件夹
      copyFolderSync(sourcePath, targetPath);
    } else {
      // 如果是文件，则直接复制文件
      fs.copyFileSync(sourcePath, targetPath);
    }
  });
};
